package fornecedor;

import java.util.Date;
import java.util.List;

import persistencia.DAOException;
import persistencia.DAOFactory;
import persistencia.RNException;

public class FornecedorRN {

	private FornecedorDAO fornecedorDAO = DAOFactory.getFornecedorDAO(); 
	private FornecedorDAOHibernate fornecedorDAOHibernate = new FornecedorDAOHibernate();

	public void salvar(Fornecedor fornecedor) throws RNException {
		try {
			fornecedorDAO.getSession().beginTransaction();
			fornecedor.setDataAtualizacao(new Date());
			fornecedor.setDataCadastro(new Date());
			fornecedorDAO.save(fornecedor);
			fornecedorDAO.getSession().getTransaction().commit();
		} catch (DAOException e) {
			e.printStackTrace();
			throw new RNException();
		}
	}

	public List<Fornecedor> listar() throws RNException {

		try {
			return fornecedorDAO.findAll();

		} catch (DAOException e) {
			e.printStackTrace();
			throw new RNException();
		}
	}

	public Fornecedor buscaPorCpfCnpj(String cpfCnpj) {
		return fornecedorDAOHibernate.buscaPorCpfCnpj(cpfCnpj);
	}
	
	public void deletar(Fornecedor fornecedor)throws RNException{
		try {
			fornecedorDAO.getSession().beginTransaction();
			fornecedorDAO.delete(fornecedor);
			fornecedorDAO.getSession().getTransaction().commit(); 
			
		} catch (DAOException e) {
			e.printStackTrace();
			throw new RNException(); 
		}
	}

}
